#include <stdio.h>

#define PRINT_STUB_ERROR printf("\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nERROR: %s from stub libGLESv2.so library called! This library can be used to resolve OpenGL ES symbols at compile time but must *not* be in your runtime path (You need to use a real OpenGL ES implementation, this one is empty)\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n", __func__)

void glActiveTexture(void) { PRINT_STUB_ERROR; return; }
void glAttachShader(void) { PRINT_STUB_ERROR; return; }
void glBindAttribLocation(void) { PRINT_STUB_ERROR; return; }
void glBindBuffer(void) { PRINT_STUB_ERROR; return; }
void glBindFramebuffer(void) { PRINT_STUB_ERROR; return; }
void glBindRenderbuffer(void) { PRINT_STUB_ERROR; return; }
void glBindTexture(void) { PRINT_STUB_ERROR; return; }
void glBlendColor(void) { PRINT_STUB_ERROR; return; }
void glBlendEquation(void) { PRINT_STUB_ERROR; return; }
void glBlendEquationSeparate(void) { PRINT_STUB_ERROR; return; }
void glBlendFunc(void) { PRINT_STUB_ERROR; return; }
void glBlendFuncSeparate(void) { PRINT_STUB_ERROR; return; }
void glBufferData(void) { PRINT_STUB_ERROR; return; }
void glBufferSubData(void) { PRINT_STUB_ERROR; return; }
void glCheckFramebufferStatus(void) { PRINT_STUB_ERROR; return; }
void glClear(void) { PRINT_STUB_ERROR; return; }
void glClearColor(void) { PRINT_STUB_ERROR; return; }
void glClearDepthf(void) { PRINT_STUB_ERROR; return; }
void glClearStencil(void) { PRINT_STUB_ERROR; return; }
void glColorMask(void) { PRINT_STUB_ERROR; return; }
void glCompileShader(void) { PRINT_STUB_ERROR; return; }
void glCompressedTexImage2D(void) { PRINT_STUB_ERROR; return; }
void glCompressedTexSubImage2D(void) { PRINT_STUB_ERROR; return; }
void glCopyTexImage2D(void) { PRINT_STUB_ERROR; return; }
void glCopyTexSubImage2D(void) { PRINT_STUB_ERROR; return; }
void glCreateProgram(void) { PRINT_STUB_ERROR; return; }
void glCreateShader(void) { PRINT_STUB_ERROR; return; }
void glCullFace(void) { PRINT_STUB_ERROR; return; }
void glDeleteBuffers(void) { PRINT_STUB_ERROR; return; }
void glDeleteFramebuffers(void) { PRINT_STUB_ERROR; return; }
void glDeleteProgram(void) { PRINT_STUB_ERROR; return; }
void glDeleteRenderbuffers(void) { PRINT_STUB_ERROR; return; }
void glDeleteShader(void) { PRINT_STUB_ERROR; return; }
void glDeleteTextures(void) { PRINT_STUB_ERROR; return; }
void glDepthFunc(void) { PRINT_STUB_ERROR; return; }
void glDepthMask(void) { PRINT_STUB_ERROR; return; }
void glDepthRangef(void) { PRINT_STUB_ERROR; return; }
void glDetachShader(void) { PRINT_STUB_ERROR; return; }
void glDisable(void) { PRINT_STUB_ERROR; return; }
void glDisableVertexAttribArray(void) { PRINT_STUB_ERROR; return; }
void glDrawArrays(void) { PRINT_STUB_ERROR; return; }
void glDrawElements(void) { PRINT_STUB_ERROR; return; }
void glEnable(void) { PRINT_STUB_ERROR; return; }
void glEnableVertexAttribArray(void) { PRINT_STUB_ERROR; return; }
void glFinish(void) { PRINT_STUB_ERROR; return; }
void glFlush(void) { PRINT_STUB_ERROR; return; }
void glFramebufferRenderbuffer(void) { PRINT_STUB_ERROR; return; }
void glFramebufferTexture2D(void) { PRINT_STUB_ERROR; return; }
void glFrontFace(void) { PRINT_STUB_ERROR; return; }
void glGenBuffers(void) { PRINT_STUB_ERROR; return; }
void glGenerateMipmap(void) { PRINT_STUB_ERROR; return; }
void glGenFramebuffers(void) { PRINT_STUB_ERROR; return; }
void glGenRenderbuffers(void) { PRINT_STUB_ERROR; return; }
void glGenTextures(void) { PRINT_STUB_ERROR; return; }
void glGetActiveAttrib(void) { PRINT_STUB_ERROR; return; }
void glGetActiveUniform(void) { PRINT_STUB_ERROR; return; }
void glGetAttachedShaders(void) { PRINT_STUB_ERROR; return; }
void glGetAttribLocation(void) { PRINT_STUB_ERROR; return; }
void glGetBooleanv(void) { PRINT_STUB_ERROR; return; }
void glGetBufferParameteriv(void) { PRINT_STUB_ERROR; return; }
void glGetError(void) { PRINT_STUB_ERROR; return; }
void glGetFloatv(void) { PRINT_STUB_ERROR; return; }
void glGetFramebufferAttachmentParameteriv(void) { PRINT_STUB_ERROR; return; }
void glGetIntegerv(void) { PRINT_STUB_ERROR; return; }
void glGetProgramiv(void) { PRINT_STUB_ERROR; return; }
void glGetProgramInfoLog(void) { PRINT_STUB_ERROR; return; }
void glGetRenderbufferParameteriv(void) { PRINT_STUB_ERROR; return; }
void glGetShaderiv(void) { PRINT_STUB_ERROR; return; }
void glGetShaderInfoLog(void) { PRINT_STUB_ERROR; return; }
void glGetShaderPrecisionFormat(void) { PRINT_STUB_ERROR; return; }
void glGetShaderSource(void) { PRINT_STUB_ERROR; return; }
void glGetString(void) { PRINT_STUB_ERROR; return; }
void glGetTexParameterfv(void) { PRINT_STUB_ERROR; return; }
void glGetTexParameteriv(void) { PRINT_STUB_ERROR; return; }
void glGetUniformfv(void) { PRINT_STUB_ERROR; return; }
void glGetUniformiv(void) { PRINT_STUB_ERROR; return; }
void glGetUniformLocation(void) { PRINT_STUB_ERROR; return; }
void glGetVertexAttribfv(void) { PRINT_STUB_ERROR; return; }
void glGetVertexAttribiv(void) { PRINT_STUB_ERROR; return; }
void glGetVertexAttribPointerv(void) { PRINT_STUB_ERROR; return; }
void glHint(void) { PRINT_STUB_ERROR; return; }
void glIsBuffer(void) { PRINT_STUB_ERROR; return; }
void glIsEnabled(void) { PRINT_STUB_ERROR; return; }
void glIsFramebuffer(void) { PRINT_STUB_ERROR; return; }
void glIsProgram(void) { PRINT_STUB_ERROR; return; }
void glIsRenderbuffer(void) { PRINT_STUB_ERROR; return; }
void glIsShader(void) { PRINT_STUB_ERROR; return; }
void glIsTexture(void) { PRINT_STUB_ERROR; return; }
void glLineWidth(void) { PRINT_STUB_ERROR; return; }
void glLinkProgram(void) { PRINT_STUB_ERROR; return; }
void glPixelStorei(void) { PRINT_STUB_ERROR; return; }
void glPolygonOffset(void) { PRINT_STUB_ERROR; return; }
void glReadPixels(void) { PRINT_STUB_ERROR; return; }
void glReleaseShaderCompiler(void) { PRINT_STUB_ERROR; return; }
void glRenderbufferStorage(void) { PRINT_STUB_ERROR; return; }
void glSampleCoverage(void) { PRINT_STUB_ERROR; return; }
void glScissor(void) { PRINT_STUB_ERROR; return; }
void glShaderBinary(void) { PRINT_STUB_ERROR; return; }
void glShaderSource(void) { PRINT_STUB_ERROR; return; }
void glStencilFunc(void) { PRINT_STUB_ERROR; return; }
void glStencilFuncSeparate(void) { PRINT_STUB_ERROR; return; }
void glStencilMask(void) { PRINT_STUB_ERROR; return; }
void glStencilMaskSeparate(void) { PRINT_STUB_ERROR; return; }
void glStencilOp(void) { PRINT_STUB_ERROR; return; }
void glStencilOpSeparate(void) { PRINT_STUB_ERROR; return; }
void glTexImage2D(void) { PRINT_STUB_ERROR; return; }
void glTexParameterf(void) { PRINT_STUB_ERROR; return; }
void glTexParameterfv(void) { PRINT_STUB_ERROR; return; }
void glTexParameteri(void) { PRINT_STUB_ERROR; return; }
void glTexParameteriv(void) { PRINT_STUB_ERROR; return; }
void glTexSubImage2D(void) { PRINT_STUB_ERROR; return; }
void glUniform1f(void) { PRINT_STUB_ERROR; return; }
void glUniform1fv(void) { PRINT_STUB_ERROR; return; }
void glUniform1i(void) { PRINT_STUB_ERROR; return; }
void glUniform1iv(void) { PRINT_STUB_ERROR; return; }
void glUniform2f(void) { PRINT_STUB_ERROR; return; }
void glUniform2fv(void) { PRINT_STUB_ERROR; return; }
void glUniform2i(void) { PRINT_STUB_ERROR; return; }
void glUniform2iv(void) { PRINT_STUB_ERROR; return; }
void glUniform3f(void) { PRINT_STUB_ERROR; return; }
void glUniform3fv(void) { PRINT_STUB_ERROR; return; }
void glUniform3i(void) { PRINT_STUB_ERROR; return; }
void glUniform3iv(void) { PRINT_STUB_ERROR; return; }
void glUniform4f(void) { PRINT_STUB_ERROR; return; }
void glUniform4fv(void) { PRINT_STUB_ERROR; return; }
void glUniform4i(void) { PRINT_STUB_ERROR; return; }
void glUniform4iv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix2fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix3fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix4fv(void) { PRINT_STUB_ERROR; return; }
void glUseProgram(void) { PRINT_STUB_ERROR; return; }
void glValidateProgram(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib1f(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib1fv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib2f(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib2fv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib3f(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib3fv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib4f(void) { PRINT_STUB_ERROR; return; }
void glVertexAttrib4fv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribPointer(void) { PRINT_STUB_ERROR; return; }
void glViewport(void) { PRINT_STUB_ERROR; return; }

/* OpenGL ES 3.0 */

void glReadBuffer(void) { PRINT_STUB_ERROR; return; }
void glDrawRangeElements(void) { PRINT_STUB_ERROR; return; }
void glTexImage3D(void) { PRINT_STUB_ERROR; return; }
void glTexSubImage3D(void) { PRINT_STUB_ERROR; return; }
void glCopyTexSubImage3D(void) { PRINT_STUB_ERROR; return; }
void glCompressedTexImage3D(void) { PRINT_STUB_ERROR; return; }
void glCompressedTexSubImage3D(void) { PRINT_STUB_ERROR; return; }
void glGenQueries(void) { PRINT_STUB_ERROR; return; }
void glDeleteQueries(void) { PRINT_STUB_ERROR; return; }
void glIsQuery(void) { PRINT_STUB_ERROR; return; }
void glBeginQuery(void) { PRINT_STUB_ERROR; return; }
void glEndQuery(void) { PRINT_STUB_ERROR; return; }
void glGetQueryiv(void) { PRINT_STUB_ERROR; return; }
void glGetQueryObjectuiv(void) { PRINT_STUB_ERROR; return; }
void glUnmapBuffer(void) { PRINT_STUB_ERROR; return; }
void glGetBufferPointerv(void) { PRINT_STUB_ERROR; return; }
void glDrawBuffers(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix2x3fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix3x2fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix2x4fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix4x2fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix3x4fv(void) { PRINT_STUB_ERROR; return; }
void glUniformMatrix4x3fv(void) { PRINT_STUB_ERROR; return; }
void glBlitFramebuffer(void) { PRINT_STUB_ERROR; return; }
void glRenderbufferStorageMultisample(void) { PRINT_STUB_ERROR; return; }
void glFramebufferTextureLayer(void) { PRINT_STUB_ERROR; return; }
void glMapBufferRange(void) { PRINT_STUB_ERROR; return; }
void glFlushMappedBufferRange(void) { PRINT_STUB_ERROR; return; }
void glBindVertexArray(void) { PRINT_STUB_ERROR; return; }
void glDeleteVertexArrays(void) { PRINT_STUB_ERROR; return; }
void glGenVertexArrays(void) { PRINT_STUB_ERROR; return; }
void glIsVertexArray(void) { PRINT_STUB_ERROR; return; }
void glGetIntegeri_v(void) { PRINT_STUB_ERROR; return; }
void glBeginTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glEndTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glBindBufferRange(void) { PRINT_STUB_ERROR; return; }
void glBindBufferBase(void) { PRINT_STUB_ERROR; return; }
void glTransformFeedbackVaryings(void) { PRINT_STUB_ERROR; return; }
void glGetTransformFeedbackVarying(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribIPointer(void) { PRINT_STUB_ERROR; return; }
void glGetVertexAttribIiv(void) { PRINT_STUB_ERROR; return; }
void glGetVertexAttribIuiv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribI4i(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribI4ui(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribI4iv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribI4uiv(void) { PRINT_STUB_ERROR; return; }
void glGetUniformuiv(void) { PRINT_STUB_ERROR; return; }
void glGetFragDataLocation(void) { PRINT_STUB_ERROR; return; }
void glUniform1ui(void) { PRINT_STUB_ERROR; return; }
void glUniform2ui(void) { PRINT_STUB_ERROR; return; }
void glUniform3ui(void) { PRINT_STUB_ERROR; return; }
void glUniform4ui(void) { PRINT_STUB_ERROR; return; }
void glUniform1uiv(void) { PRINT_STUB_ERROR; return; }
void glUniform2uiv(void) { PRINT_STUB_ERROR; return; }
void glUniform3uiv(void) { PRINT_STUB_ERROR; return; }
void glUniform4uiv(void) { PRINT_STUB_ERROR; return; }
void glClearBufferiv(void) { PRINT_STUB_ERROR; return; }
void glClearBufferuiv(void) { PRINT_STUB_ERROR; return; }
void glClearBufferfv(void) { PRINT_STUB_ERROR; return; }
void glClearBufferfi(void) { PRINT_STUB_ERROR; return; }
void glGetStringi(void) { PRINT_STUB_ERROR; return; }
void glCopyBufferSubData(void) { PRINT_STUB_ERROR; return; }
void glGetUniformIndices(void) { PRINT_STUB_ERROR; return; }
void glGetActiveUniformsiv(void) { PRINT_STUB_ERROR; return; }
void glGetUniformBlockIndex(void) { PRINT_STUB_ERROR; return; }
void glGetActiveUniformBlockiv(void) { PRINT_STUB_ERROR; return; }
void glGetActiveUniformBlockName(void) { PRINT_STUB_ERROR; return; }
void glUniformBlockBinding(void) { PRINT_STUB_ERROR; return; }
void glDrawArraysInstanced(void) { PRINT_STUB_ERROR; return; }
void glDrawElementsInstanced(void) { PRINT_STUB_ERROR; return; }
void glFenceSync(void) { PRINT_STUB_ERROR; return; }
void glIsSync(void) { PRINT_STUB_ERROR; return; }
void glDeleteSync(void) { PRINT_STUB_ERROR; return; }
void glClientWaitSync(void) { PRINT_STUB_ERROR; return; }
void glWaitSync(void) { PRINT_STUB_ERROR; return; }
void glGetInteger64v(void) { PRINT_STUB_ERROR; return; }
void glGetSynciv(void) { PRINT_STUB_ERROR; return; }
void glGetInteger64i_v(void) { PRINT_STUB_ERROR; return; }
void glGetBufferParameteri64v(void) { PRINT_STUB_ERROR; return; }
void glGenSamplers(void) { PRINT_STUB_ERROR; return; }
void glDeleteSamplers(void) { PRINT_STUB_ERROR; return; }
void glIsSampler(void) { PRINT_STUB_ERROR; return; }
void glBindSampler(void) { PRINT_STUB_ERROR; return; }
void glSamplerParameteri(void) { PRINT_STUB_ERROR; return; }
void glSamplerParameteriv(void) { PRINT_STUB_ERROR; return; }
void glSamplerParameterf(void) { PRINT_STUB_ERROR; return; }
void glSamplerParameterfv(void) { PRINT_STUB_ERROR; return; }
void glGetSamplerParameteriv(void) { PRINT_STUB_ERROR; return; }
void glGetSamplerParameterfv(void) { PRINT_STUB_ERROR; return; }
void glVertexAttribDivisor(void) { PRINT_STUB_ERROR; return; }
void glBindTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glDeleteTransformFeedbacks(void) { PRINT_STUB_ERROR; return; }
void glGenTransformFeedbacks(void) { PRINT_STUB_ERROR; return; }
void glIsTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glPauseTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glResumeTransformFeedback(void) { PRINT_STUB_ERROR; return; }
void glGetProgramBinary(void) { PRINT_STUB_ERROR; return; }
void glProgramBinary(void) { PRINT_STUB_ERROR; return; }
void glProgramParameteri(void) { PRINT_STUB_ERROR; return; }
void glInvalidateFramebuffer(void) { PRINT_STUB_ERROR; return; }
void glInvalidateSubFramebuffer(void) { PRINT_STUB_ERROR; return; }
void glTexStorage2D(void) { PRINT_STUB_ERROR; return; }
void glTexStorage3D(void) { PRINT_STUB_ERROR; return; }
void glGetInternalformativ(void) { PRINT_STUB_ERROR; return; }

/* OpenGL ES 3.1, incomplete */

void glProgramUniform1ui(void) { PRINT_STUB_ERROR; return; }
void glDispatchCompute(void) { PRINT_STUB_ERROR; return; }
void glMemoryBarrier(void) { PRINT_STUB_ERROR; return; }
void glBindImageTexture(void) { PRINT_STUB_ERROR; return; }
void glProgramUniformMatrix4fv(void) { PRINT_STUB_ERROR; return; }
void glProgramUniform1f(void) { PRINT_STUB_ERROR; return; }
void glProgramUniform2f(void) { PRINT_STUB_ERROR; return; }
void glProgramUniform3f(void) { PRINT_STUB_ERROR; return; }
void glProgramUniform3fv(void) { PRINT_STUB_ERROR; return; }
void glProgramUniform4f(void) { PRINT_STUB_ERROR; return; }
void glDrawElementsIndirect(void) { PRINT_STUB_ERROR; return; }


